<?php

class ConfigController extends Zend_Controller_Action
{

    public function init()
    {
		//si no esta registrado / o es admin lo redirigimos
		$auth = Zend_Auth::getInstance();
		if ($auth->hasIdentity()) {
			$userInfo = $auth->getStorage()->read();
			if($userInfo['isAdmin'])
				$this->_helper->redirector('index', 'index');
		}else{
			$this->_helper->redirector('ingreso', 'cliente');
		}
    }

    public function indexAction()
    {
        // action body
		$this->_helper->redirector('historialpedidos', 'config');
    }

    public function cambiopasswordAction()
    {
        $form = new Application_Form_ResetPassword();
		$form->setAction('/config/cambiopassword');
		$tablaClientes = new  Application_Model_DbTable_Clientes();
		// Traigo los datos de session del usuario
		$auth = Zend_Auth::getInstance();
		$userInfo = $auth->getStorage()->read();
		
		//Banderas
		$this->view->exito = false;
		$this->view->operation = 'cambiada';
		// VALIDAMOS QUE EL METODO SEA POST
		if($this->getRequest()->isPost() && $form->isValid($this->_request->getPost())){
			//creamos un array para los datos
			$datos = array(
				'password' => md5($form->getValue('pwd'))
			);
			// persistimos los datos 
			$where = array('id_cliente = ?' => $userInfo['idCliente']);
			$tablaClientes->update($datos,$where);
			$this->view->exito = true;
			// $this->_helper->redirector('historialpedidos', 'config');
		}
		$this->view->form = $form;
    }

    public function cambiodatosAction()
    {
		// Traigo los datos de session del usuario
		$auth = Zend_Auth::getInstance();
		$userInfo = $auth->getStorage()->read();
		
        $tablaClientes = new Application_Model_DbTable_Clientes();
		$resBusqueda = $tablaClientes->getClientesFromId($userInfo['idCliente']);
		$resBusqueda[0]['fechaNac']=$resBusqueda[0]['fecha_nac'];
		$resBusqueda[0]['codigoPostal']=$resBusqueda[0]['codigo_postal'];
		$resBusqueda[0]['domicilio']=$resBusqueda[0]['direccion'];
		$resBusqueda[0]['pais']=$resBusqueda[0]['id_pais'];
		$resBusqueda[0]['zonas']=$resBusqueda[0]['id_provincia'];
		
		$form = new Application_Form_Registrar();
		$form->populate($resBusqueda[0]);
		$form->setAction('/config/cambiodatos');
		$form->removeElement('pwd');
		$form->removeElement('pwdconfirm');
		$form->getElement('Registrar')->setLabel('Guardar');
		
		// bandera para mostrar mensaje de registro exitoso
		$this->view->pais = $resBusqueda[0]['id_pais'];
		$this->view->zona = $resBusqueda[0]['id_provincia'];
		$this->view->exito = false;
		$this->view->operation = 'modificados';
		
		// Valido el formulario
		if($this->getRequest()->isPost() && $form->preValidateEdition($this->_request->getPost(),$resBusqueda[0]) && $form->isValid($this->_request->getPost())){
			$datos = array(
				'nombre' => $form->getValue('nombre'),
					'apellido' => $form->getValue('apellido'),
					'email' => $form->getValue('email'),
					'telefono' => $form->getValue('telefono'),
					'empresa' => $form->getValue('empresa'),
					'direccion' => $form->getValue('domicilio'),
					'id_pais' => $form->getValue('pais'),
					'id_provincia' => $form->getValue('zonas'),
					'ciudad' => $form->getValue('ciudad'),
					'codigo_postal' => $form->getValue('codigoPostal'),
					'fecha_nac' => $form->getValue('fechaNac')
			);
			$where = array('id_cliente = ?' => $userInfo['idCliente']);
			$tablaClientes->update($datos,$where);
			
			$this->view->exito = true;
			// $this->_helper->redirector('historialpedidos', 'config');
		}
		$this->view->form = $form;
    }

    public function historialpedidosAction()
    {
	
		// Traigo los datos de session del usuario
		$auth = Zend_Auth::getInstance();
		$userInfo = $auth->getStorage()->read();
		
        // Traigo la request y la pagina actual
		$request = $this->getRequest();
		$page = $request->getParam('page',1);

		//Instancio la tabla que necesito
		$tablaPedidos = new Application_Model_DbTable_Pedidos();
		
		// print_r($userInfo);die();
		// si hay resultados como el SQL query es DESC el primer registro
		// en el array es el último pedido
		$resultados = $tablaPedidos->getPedidosFromClienteId($userInfo['idCliente']);
		
		$paginator = Zend_Paginator::factory($resultados);      
		$paginator->setCurrentPageNumber($page); // numero de pagina
		$paginator->setItemCountPerPage(20); // numero de resultados por pagina
		
		//obtengo los datos del último pedido
		$ultimoPedidoId = 0;
		if(count($resultados)>0){
			$ultimoPedidoId = $resultados[0]['id_pedido'];
			$tablaPedidosDetalle = new Application_Model_DbTable_PedidosDetalle();
			$detalleUltPed = $tablaPedidosDetalle->getDetalleFromIdPedido($ultimoPedidoId);
		}
		//paso los objetos a la vista
		$this->view->paginator = $paginator;
		$this->view->ultimoPedido = $detalleUltPed;
    }

    public function notadepedidoAction()
    {
		// Traigo los datos de session del usuario
		$auth = Zend_Auth::getInstance();
		$userInfo = $auth->getStorage()->read();
		
		$request = $this->getRequest();
		$idPedidoBuscado = $request->getParam('id');
		
		$tablaPedidos = new Application_Model_DbTable_Pedidos();
		$tablaDetalle = new Application_Model_DbTable_PedidosDetalle();
		
		$resultadoPedido = array();
		$resultadoDetalle = array();
		

		if($tablaPedidos->pedidoPerteneceAlCliente($userInfo['idCliente'], $idPedidoBuscado)){
			$resultadoPedido = $tablaPedidos->getPedidosFromId($idPedidoBuscado);
			$resultadoDetalle = $tablaDetalle->getDetalleFromIdPedido($idPedidoBuscado);
		}
		
		$this->view->resultadoDetalle = $resultadoDetalle;
		$this->view->resultadoPedido = $resultadoPedido;
    }


}









